home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Python 1.3.3 / Python 133 68K / Demo / www / httplib.py < prev    next >
Text File  |  1996-05-20  |  1KB  |  43 lines

  1. # HTTP protocol interface
  2.  
  3. DEF_PORT = 80
  4. OLD_PORT = 2784
  5.  
  6. # Get an HTML file from an HTML server, converting (optional) CRLF to LF
  7. def get_htmlfile(host, port, searchaddr):
  8.     text = ''
  9.     f = send_request(host, port, 'GET ' + searchaddr)
  10.     while 1:
  11.         line = f.readline()
  12.         if not line:
  13.             break
  14.         if line[-2:] == '\r\n':
  15.             line = line[:-2] + '\n'
  16.         text = text + line
  17.     f.close()
  18.     return text
  19.  
  20. # Send a selector to a given host and port, return an open file from
  21. # which the reply can be read
  22. def send_request(host, port, request):
  23.     import socket
  24.     if not port:
  25.         port = DEF_PORT
  26.     elif type(port) == type(''):
  27.         import string
  28.         port = string.atoi(port)
  29.     s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  30.     try:
  31.         s.connect((host, port))
  32.     except socket.error, msg:
  33.         if type(msg) == type(()) and len(msg) == 2 and \
  34.             msg[0] == 127 and port == DEF_PORT:
  35.             # Try the old default port
  36.             s.close()
  37.             return send_request(host, OLD_PORT, request)
  38.         else:
  39.             raise socket.error, msg
  40.     s.send(request + '\r\n')
  41.     s.shutdown(1)
  42.     return s.makefile('r')
  43.